package com.bjpowerrnode.javase.date;

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;

public class CurrentTime {
    public static void main(String[] args) {
        //方法一
        System.out.println("方法一");
        Date date = new Date();
        System.out.println(date);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        String format = simpleDateFormat.format(date);
        System.out.println(format);

        //方法二:获得时间戳
        System.out.println("方法二");
        long l = System.currentTimeMillis();
        System.out.println(l);
        System.out.println(simpleDateFormat.format(l));

        //方法三
        System.out.println("方法三");
        Calendar instance = Calendar.getInstance();
        System.out.println(instance.getTime());
        simpleDateFormat = new SimpleDateFormat("yyMMddHHmmssSSS");
        System.out.println(simpleDateFormat.format(instance.getTime()));
       // System.out.println("Integer.parseInt:"+Integer.parseInt(simpleDateFormat.format(instance.getTime())));

        //方法四
        System.out.println("方法四");
        /*LocalDate只是一个日期，没有时间。 这意味着我们只能获得当前日期，但没有一天的具体时间。*/
        LocalDate now = LocalDate.now();
        System.out.println(now);
        /*LocalTime与LocalDate相反，它只代表一个时间，没有日期。 这意味着我们只能获得当天的当前时间，而不是实际日期*/
        LocalTime now1 = LocalTime.now();
        System.out.println("now1="+now1);
        /*最后一个是LocalDateTime，也是Java中最常用的Date / Time类，代表前两个类的组合 - 即日期和时间的值*/
        LocalDateTime now2 = LocalDateTime.now();
        System.out.println(now2);
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss SSS");
        System.out.println(dateTimeFormatter.format(now2));

        //测试
        System.out.println("测试");
        System.out.println("LocalTime.MAX="+LocalTime.MAX);
        long l1 = LocalDateTime.of(LocalDate.now(), LocalTime.MAX).atZone(ZoneId.systemDefault()).toEpochSecond();
        System.out.println(l1);
    }
}
